using namespace std;
#ifndef SOMMET_H
#define SOMMET_H
#include <iostream>
#include <vector>

class Arete;

class Sommet {
	private:
		float x;
		float y;
		int id;
                vector<Sommet*> voisins;
                vector<Arete*> aretes;
	public:
		Sommet();
		Sommet(float, float, int);
		Sommet(const Sommet&);
		~Sommet();
                void addVoisin(Sommet*);
                void addAreteIncidente(Arete *);
		void removeVoisin(Sommet*);
                void removeVoisin(int);
                void removeAreteIncidente(Arete *);
                void removeAreteIncidente(int);
		void clearVoisins();
		float getX()const;
		float getY()const;
		int getId()const;
                vector<Sommet*> getVoisins()const;
                vector<Arete *> getAreteIncidente()const;
                bool estVoisin(Sommet *s);
		int degre()const;
		void affiche()const;
		void afficheSV()const;
		void afficheVoisins()const;
		Sommet operator=(const Sommet&);
		bool operator==(const Sommet&);
		bool operator!=(const Sommet&);
};
#endif
